home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / HAM_RAD / PROPAGAT / 1004A.ZIP / MOONFIND.BAS < prev    next >
BASIC Source File  |  1986-05-23  |  6KB  |  203 lines

  1. 1 REM ALL OK EXCEPT DOPPLER SHIFT IS SLIGHTLY OUT
  2. 10 REM MOON FINDER BY G3WDG
  3. 20 REM HAM RADIO TODAY JULY 84,P.28
  4. 30 SCREEN 0:CLS:WIDTH 40:KEY OFF
  5. 80 REM MOON LOCATION PROGRAM
  6. 90 REM DEFINED CONSTANTS
  7. 100 P5=2#*3.1415926535#
  8. 110 D5=360#/P5
  9. 120 R5=P5/360#
  10. 130 DEF FNA(X)=INT(X*D5*10+.5)/10
  11. 140 DEF FNB(X)=(X-INT(X))*P5
  12. 145 REM DATA INPUT SECTION
  13. 150 INPUT"LATITUDE DEG,MIN";L5,U5
  14. 160 INPUT"LONGITUDE DEG,MIN";L6,U6
  15. 170 LA=L5+INT((U5/60)*100)/100
  16. 180 LO=L6+INT((U6/60)*100)/100
  17. 190 L5=(L5+U5/60)*R5
  18. 200 L6=(L6+U6/60)*R5
  19. 210 INPUT"INCREMENT IN MINUTES";I
  20. 220 U5=INT((U5/60)*100)/100
  21. 230 U6=INT((U6/60)*100)/100
  22. 240 I6=100
  23. 250 GOTO 260
  24. 260 INPUT"DAY, MONTH, YEAR, TIME START, TIME FINISH";D,M,Y,B,E1
  25. 270 Y1=Y-(INT(Y/100)*100)
  26. 280 PRINT
  27. 290 PRINT
  28. 300 NS$="N"
  29. 310 IF LA<0 THEN NS$="S"
  30. 320 EW$="W"
  31. 330 IF LO<0 THEN EW$="E"
  32. 340 PRINT                              "MOON                ";D;"/";M;"/";Y1:PRINT"FROM LAT= ";LA*SGN(LA);NS$;"    LONG= ";LO*SGN(LO);EW$
  33. 350 F1=0
  34. 360 PRINT
  35. 370 I1=2
  36. 375 REM CALCULATION OF JULIAN DATE
  37. 380 IF M>=3 THEN 460
  38. 390 IF INT((Y-1853)/4)<11 THEN GOTO 420
  39. 400 C1=-1
  40. 410 GOTO 430
  41. 420 C1=0
  42. 430 J1=365*(Y-1853)+D+30*(M+9)+INT((M+10)/2)
  43. 440 J2=INT((Y-1853)/4)+1+C1
  44. 450 GOTO 570
  45. 460 IF INT((Y-1852)/4)<11 THEN GOTO 490
  46. 470 C1=-1
  47. 480 GOTO 500
  48. 490 C1=0
  49. 500 IF M=9 THEN 540
  50. 510 IF M=11 THEN 540
  51. 520 C2=0
  52. 530 GOTO 550
  53. 540 C2=1
  54. 550 J1=365*(Y-1852)+D+30*(M-3)+INT((M-2)/2)
  55. 560 J2=INT((Y-1852)/4)+C1+C2
  56. 570 J=J1+J2
  57. 580 T1=J-17472.5
  58. 585 REM CALCULATION OF DAYS SINCE LAST PERIGEE AND AGE OF MOON
  59. 590 T9=J+2397547.5#
  60. 600 T9=T9-2444507.6#
  61. 610 T7=T9-14.6
  62. 620 T8=INT(T7/29.5306)
  63. 630 T8=T7-T8*29.5306
  64. 640 Q=INT(T9/27.5545)
  65. 650 R=T9-(27.5455*Q)
  66. 660 S=24*R
  67. 665 REM START OF MAIN CALCULATION LOOP
  68. 670 D9=(B-INT(B/100)*100)+INT(B/100)*60
  69. 680 D6=(E1-INT(E1/100)*100)+INT(E1/100)*60
  70. 690 D7=D9-D6
  71. 700 D8=D7-I
  72. 710 IF D7>=0 THEN GOTO 730
  73. 720 GOTO 750
  74. 730 IF D8>=0 THEN GOTO 1840
  75. 740 B=E1
  76. 745 REM CALCULATION OF LUNAR LAT & LONG
  77. 750 T=(B-INT(B/100)*100)/1440+INT(B/100)/24
  78. 760 T5=T1+T
  79. 770 K1=FNB(.751213+.036601102#*T5)
  80. 780 K2=FNB(.822513+.03629116457#*T5)
  81. 790 K3=FNB(.995766+2.73777825E-03*T5)
  82. 800 K4=FNB(.974271+.0338631922#*T5)
  83. 810 K5=FNB(.0312525+.0367481957#*T5)
  84. 820 L8=K1+.658*R5*SIN(2*K4)+6.289*R5*SIN(K2)
  85. 830 L8=L8-1.274*R5*SIN(K2-2*K4)-.186*R5*SIN(K3)
  86. 840 L8=L8+.214*R5*SIN(2*K2)-.114*R5*SIN(2*K5)
  87. 850 L8=L8-.059*R5*SIN(2*K2-2*K4)-.057*R5*SIN(K2+K3-2*K4)
  88. 860 K6=K5+.6593*R5*SIN(2*K4)+6.2303*R5*SIN(K2)-1.272*R5*SIN(K2-2*K4)
  89. 870 L7=5.144*R5*SIN(K6)-.146*R5*SIN(K5-2*K4)
  90. 875 REM CALCULATION OF LUNAR RA & DEC
  91. 880 D1=COS(L7)*SIN(L8)*.397821+SIN(L7)*.917436
  92. 890 D1=ATN(D1/(SQR(1-D1^2)))
  93. 900 G1=50+.5+((D1)/(.792))*D5
  94. 910 G2=80+((D1)/(.808))*D5
  95. 920 G3=141.5-((D1)*(.738)*D5)
  96. 930 G4=170.5-((D1)*(.857)*D5)
  97. 940 A2=(COS(L7)*COS(L8))/COS(D1)
  98. 950 A1=(COS(L7)*SIN(L8)*.917436-SIN(L7)*.397821)/COS(D1)
  99. 960 A=ATN(A1/A2)
  100. 970 GOSUB 1230
  101. 980 R1=A
  102. 990 L1=.065709822#*T1
  103. 1000 L=T*24*1.002738#+6.646055#+(L1-INT(L1/24)*24)
  104. 1010 L=(L-INT(L/24)*24)
  105. 1015 REM CALCULATION OF GHA FROM LOCAL SIDEREAL TIME
  106. 1020 G=(L/24)*P5-R1
  107. 1030 IF G<P5 THEN GOTO 1060
  108. 1040 G=G-P5
  109. 1050 GOTO 1090
  110. 1060 IF G<0 THEN GOTO 1080
  111. 1070 GOTO 1090
  112. 1080 G=G+P5
  113. 1085 REM CALCULATION OF LHA FROM GHA
  114. 1090 H=L6-G
  115. 1095 REM CALCULATION OF ELEVATION
  116. 1100 E3=COS(L5)*COS(H)*COS(D1)+SIN(D1)*SIN(L5)
  117. 1110 E2=SQR(1-(E3*E3))
  118. 1115 REM PARALLAX CORRECTION FOR ELEVATION
  119. 1120 E=ATN((E3/E2)-(1/(61.33*E2)))
  120. 1130 F=ATN(E3/E2)
  121. 1135 REM JUMP TO TIME INCREMENTING ROUTINE IF MOON IS BELOW HORIZON
  122. 1140  IF E<0 THEN GOTO 1770
  123. 1150  IF E>I6*R5 THEN GOTO 1770
  124. 1155 REM CALCULATION OF AZIMUTH
  125. 1160 A2=SIN(D1)/(COS(L5)*COS(F))
  126. 1170 A2=A2-(SIN(L5)/COS(L5))*(SIN(F)/COS(F))
  127. 1180 A1=SIN(L5)*SIN(D1)+COS(L5)*COS(D1)*COS(H)
  128. 1190 A1=(SIN(H)*COS(D1))/SQR(1-A1^2)
  129. 1200 A=ATN(A1/A2)
  130. 1210 GOSUB 1230
  131. 1220 GOTO 1370
  132. 1225 REM SUBROUTINE TO REMOVE AMBIGUITIES ASSOICATED WITH ATN FUNCTION
  133. 1230  IF A=0 THEN GOTO 1250
  134. 1240  GOTO 1280
  135. 1250  IF A2<0 THEN GOTO 1270
  136. 1260  GOTO 1360
  137. 1270  GOTO 1360
  138. 1280  IF A>0 THEN GOTO 1340
  139. 1290  IF A2<0 THEN GOTO 1320
  140. 1300 A=P5+A
  141. 1310  GOTO 1360
  142. 1320 A=P5+(A-P5/2)
  143. 1330  GOTO 1360
  144. 1340  IF A2=>0 THEN GOTO 1360
  145. 1350 A=A+P5/2
  146. 1360 RETURN
  147. 1365 REM CALCULATION OF DOPPLER SHIFTFOR ECHOES ON 432 MHZ
  148. 1370 D7=-.38*(SIN(.526*S/57.3))
  149. 1380 F=432*(D7-(3.1*COS(D1)*COS(L5)*SIN(-1*H)))
  150. 1390 F=INT(F)
  151. 1400 IF (T-I1)>(2*I)/1440 THEN GOTO 1420
  152. 1410 GOTO 1430
  153. 1420 PRINT
  154. 1430 IF INT(B+.5)>9 THEN GOTO 1460
  155. 1435 REM ROUTINE FOR PUTTING LEADING ZEROS IN FRONT OF TIME(B=TIME)
  156. 1440 S$="000"
  157. 1450 GOTO 1530
  158. 1460 IF INT(B+.5)>99 THEN GOTO 1490
  159. 1470 S$="00"
  160. 1480 GOTO 1530
  161. 1490 IF INT(B+.5)>999 THEN GOTO 1520
  162. 1500 S$="0"
  163. 1510 GOTO 1530
  164. 1520 S$=""
  165. 1530 Z1=FNA(A)
  166. 1540 Z2=FNA(E)
  167. 1550 Z3=FNA(G)
  168. 1560 Z4=FNA(D1)
  169. 1570 IF F1=1 THEN GOTO 1650
  170. 1580 R1=INT(R)
  171. 1590 PRINT"DAYS SINCE PERIGEE= ";R1
  172. 1600 PRINT"AGE OF MOON= ";INT(T8*10)/10;" DAYS"
  173. 1610 PRINT
  174. 1620 PRINT" GMT     AZ    EL     GHA   DEC    DOP"
  175. 1630 PRINT" ---     --    --     ---   ---    ---"
  176. 1640 F1=1
  177. 1650 PRINT INT(B+.5);
  178. 1660 PRINT TAB(7);
  179. 1670 PRINT Z1;
  180. 1680 PRINT TAB(14);
  181. 1690 PRINT Z2;
  182. 1700 PRINT TAB(20);
  183. 1710 PRINT Z3;
  184. 1720 PRINT TAB(27);
  185. 1730 PRINT Z4;
  186. 1740 PRINT TAB(34);
  187. 1750 PRINT F
  188. 1760 I1=T
  189. 1765 REM TIME INCREMENTING ROUTINE
  190. 1770 HR=INT(B/100)
  191. 1780 MN=B-100*HR
  192. 1790 MN=MN+I
  193. 1800 B=100*(HR+INT(MN/60))
  194. 1810 MN=MN-(INT(MN/60))*60
  195. 1820 B=B+MN
  196. 1825 REM LOOP BACK TO MAIN CALCULATIONS
  197. 1830 GOTO 670
  198. 1840 PRINT
  199. 1850 PRINT"RE-RUN PROGRAM (Y/N)";
  200. 1860 INPUT D$
  201. 1870 IF D$="Y" THEN GOTO 100
  202. 1880 END
  203.